home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Acorn User: The RISC OS Graphics CD
/
Acorn User: The RISC OS Graphics CD.iso
/
argonet
/
translator.spk
/
!Translatr
/
Docs
/
Guide
next >
Wrap
Text File
|
1998-10-11
|
41KB
|
1,237 lines
_____________________
Translator user guide
_____________________
User, please note
=================
Translator is Shareware. It is not free software. You may freely use this
program for a single 30 day trial period. After this trial period, you must
decide whether or not you want to continue to use the program. If you don't,
you must stop using the program and delete your copy. If you do, you must
register your copy of the program with the author, paying a small
registration fee. Refer to 'Registering' for details.
Please respect the rules of Shareware. Shareware programs like Translator
have cost an awful lot of time and effort to build, will serve you well, and
will cost you very little. If you register the Shareware you use, you will
ensure that Shareware authors will continue to improve the software you use,
and write exciting new Shareware software. If you don't register the
Shareware you use, you are stealing money from Shareware authors, and they
will stop writing Shareware, and start writing much more expensive commercial
software instead.
Copyright notice
================
The copyright (c) of this program belongs to John Kortink. All rights are
reserved.
You may not change this program (except for documented configuration
changes). You may not use any part of this program in any other program or
product without my written approval. You may spread this program freely, but
only in complete and unchanged form, and only against bare distribution costs
(if any). This program is provided 'as is'. No fitness of this program for
any particular purpose is implied. Using this program is entirely at your own
risk.
//
//
// Introduction
//
//
Translator is a pixel image viewer, processor and convertor, all in one. It
is able to read and write a wide variety of pixel image formats, while also
providing a good set of processing functions with which these images may be
enhanced and manipulated.
In addition to this, you will find Translator to be *fast*. In fact, most of
Translator has been written in ARM assembly code, the rest has been written
in C++. In addition, some ported C code is used for JPEG and PNG conversion.
Translator runs under RISC OS 3.1 or later, and supports all relevant Acorn
machines, up to and including the latest RISC PC models. Enhanced functions
provided by the operating system and the hardware are used when available.
//
//
// The major leap
//
//
If you have used Translator versions before 8.00, you will no doubt notice
that the program has been enhanced in a very big way.
In fact, I rewrote all of it, and the result is version 8.00. Most of the
features of the 'old' Translator have been retained, and most of the features
of Creator and GreyEdit, my two other image processing programs, were added.
And there are some major additional enhancements, among which :
- RISC PC compatibility
- The ability to function as an editor
- The ability to load multiple images
- Automatic 'virtual memory'
- Support for selections
- Proper 'interpolating' upscale
- Proper 'averaging' downscale
- Numerous other functions
Also, Translator is now tuned to take advantage of specific StrongARM
capabilities where possible.
//
//
// Using Translator
//
//
On Translator's iconbar menu the usual 'Info' and 'Quit' icons can be found.
In addition, 'Options...' gives access to the 'Options' window and 'Status'
gives access to the 'Status' menu. Both the 'Options' window and the 'Status'
menu are described below.
//
//
// Loading an image
//
//
There are three ways to load an image :
1. Drag the image file to Translator's icon.
Translator will complain if it cannot recognize the image format.
2. Double-click on the image file while Translator is loaded.
If Translator cannot recognize the image format, it will not complain. This
is so that other applications may be offered a chance to load the file.
3. Double-click on the image file while Translator is not loaded, but has
been 'seen' by the RISC OS Filer.
This will only work for image formats that have an allocated filetype. Image
formats that can only be recognized in another way (i.e. by some form of
signature in the image file) won't load in this way (you will have to use
method 1 or 2 instead). When you use method 3, Translator will be loaded
automatically, and will subsequently load the image.
The image will appear in an 'image window'. The 'image window' is described
below. You may load multiple images, subject to hard disc space limitations.
Refer to 'Image storage' for more details.
//
//
// Image storage
//
//
Translator does not limit the size or number of the images you can work with.
It can store images either in memory or in a file. An image stored in memory
is referred to as 'cached', an image stored in a file as 'uncached'.
By default, Translator chooses to cache images if enough memory is available
to do so. Otherwise, it will automatically uncache the image. Alternatively,
you can tell Translator never to cache images. This may be useful when memory
is tight. Refer to the discussion of the 'Image cache' and 'Display cache'
parts of the 'Options' window.
If you wish, you can subsequently cache or uncache images on an individual
basis. This is provided by the 'Cache' entry of the image window menu (refer
to its discussion elsewhere). Once an image is uncached it is never re-cached
automatically. However, a cached image may become uncached automatically,
e.g. when the image is scaled up and there is not enough memory left to store
the new, bigger image.
Translator needs to store the image twice. One copy is the actual image data,
the other is needed solely for the image display. Both the image data and the
image display have their own seperate cache settings.
In general, when an image is cached, it can be processed much quicker than
when it is uncached. Usually, keeping the image display uncached does not
slow down processing as much as keeping the image data uncached, so if memory
is tight and you have to choose, uncache the image display before you uncache
the image data.
Of course, if you regularly need to process reasonably large images and
memory is tight, the best move is to invest in more memory. It comes very
cheap nowadays. However, as Translator can also store images in files, the
size of your harddisc will eventually be the only factor limiting the size
and number of images you can process.
//
//
// The image window
//
//
The image window displays the image. Translator uses sophisticated algorithms
to maximize the quality of the display given the limitations of the selected
screen mode. It is recommended to use a 16- or 32-bit screen mode (i.e. a '32
thousand' or '16 million' colour mode).
The filename under which the image was last saved appears in the title of the
image window (for an as yet usaved image this is the original filename). The
filename is followed by the number that Translator assigned to the image
(this number has no real significance, but reappears in some dialogue
windows, so you can tell which image is being referred to). If the image has
been edited and not subsequently saved, a '*' appears behind the image's
filename.
Clicking the 'close' icon of an image window will delete the image. If you
attempt to delete a modified image, Translator will warn you. You can switch
off this warning if you wish. Refer to the discussion of the 'Miscellaneous'
part of the 'Options' window for more details.
//
//
// Making a selection
//
//
You may select a part of the image by 'dragging a box'. This part will be
referred to as 'the selection' in the rest of this document.
First click and hold SELECT on a corner point, then drag towards the opposite
corner and release SELECT. Clicking SELECT again will remove the selection.
Clicking and/or dragging ADJUST will modify the existing selection.
Most of the available image processing functions only affect the selection.
If there is no selection, the whole image is affected. Some image processing
functions can only affect the whole image and therefore completely ignore the
selection.
The exact coordinates and the size of the selection may be monitored. Refer
to the discussion of the 'Selection' entry of the image window menu.
//
//
// The image window menu
//
//
Clicking MENU on the image window will pop up a menu that provides image
processing functions and information :
==========
= Origin =
==========
This leads to a window showing information regarding the origin of the image,
i.e. information relating to the image when it was first loaded.
========
= Save =
========
This leads to the 'Save image' window, which allows you to save the image in
a variety of image formats.
Clicking on the window will make it permanent. Note that the title of this
window carries the image number which also appears in the title of the
corresponding image window.
The format of the output image may be chosen as follows :
- 'Format' allows you to choose the image format.
- 'Colours' allows you to choose the number of bits per pixel (bpp) to be
used, which directly relates to the overall maximum number of colours to
be retained (being 2^bpp). If the writable field is not shaded, you may
specify a more precise maximum number of colours if you wish.
- 'Compression' allows you to choose the compression method used.
- 'Filename' allows you to specify the leafname or the full pathname of the
image to be saved.
The 'Colours' field deserves some further explanation. This is displayed as
'x bit r:g:b type', where 'x' is the number of bits per pixel (referred to
below as 'bpp'), 'r', 'g', and 'b' are the number of bits of accuracy in a
pixel colour of red, green, and blue respectively, and 'type' is the pixel
colour type. There are essentially two pixel colour types :
- The 'palette' or 'grey' type indicates that pixel values are not pixel
colours themselves but indices into a pixel colour lookup table (called a
'palette'). The 'grey' pixel type also indicates that all palette colours
are greys. If 'fixed' appears in the type, the palette is always fixed.
- The 'true' pixel type indicates that pixel values directly represent pixel
colours. Therefore, 'x' is always the addition of 'r', 'g' and 'b'.
Saving the image may or may not need colour quantization, colour dithering
and/or colour remapping algorithms to be applied. Translator applies the
required algorithms automatically. The accuracy of the calculations performed
by the algorithms may be changed, if needed. Refer to the discussion of the
'Quantization' and 'Dithering' parts of the 'Options' window.
Colour quantization is used whenever a 'superset' of colours (used in the
input image) needs to be reduced to a smaller 'subset' of colours (to be used
in the output image). The colour quantization algorithm calculates the subset
of colours that best represents the superset of colours. Colour quantization
is only used for palette colour output images. The colour quantization
algorithm used in Translator is known as 'Heckbert median cut'.
Colour dithering is used when the number of colours in the output image is
less than that in the input image, or when any of the number of bits per
r/g/b in the output image colours is less than that in the input image
colours, or when the output palette is fixed. In all these cases, some or all
of the input image colours do not have an exactly matching colour in the
output image, and so, for these colours, the 'closest' output image colours
need to be chosen. For a given pixel, the colour dithering algorithm
'diffuses' the errors made by this approximation to neighboring pixels. This
effectively 'smears out' the approximation errors over the rest of the image,
which makes the errors much less visible to the human eye. The colour
dithering algorithm used in Translator is a 'zizag' variant of the widely
known and used Floyd-Steinberg algorithm.
Colour remapping is used whenever the colour quantization algorithm is used,
and it finds that the number of different colours actually used in the input
image is less than or equal to the number of available output image colours.
In this case, the output image palette simply consists of all actually used
input image colours, and all that is needed is 'remapping' of the input image
colours to their respective output image colours. An exact copy of the input
image results. For example, it is not uncommon to encounter 24 bpp 'true
colour' image files in which only 256 colours (or even less) are actually
used. This can happen if someone, somewhere, sometime, for whatever dim
reason, has 'promoted' an 8 bpp palette colour image to 'true colour'. In
these cases, Translator can exactly recreate the original palette colour
image.
Translator does the right thing if the output palette turns out to be all
grey (which usually only happens when the output format requires a fixed grey
palette, e.g. PBMPlus 8 bpp or JPEG 8 bpp). In this situation, the colour
dithering algorithm used is unsuitable if the input image is in colour,
because colours are impossible to approximate well with just grey values,
resulting in a bad quality output image. A special 'grey only' dithering
algorithm is used instead, which gives much better results. The 'Dithering'
setting in the 'Options' window has no effect if this algorithm is used.
After making all your choices, you can save the image by either dragging the
filetype icon, or by clicking on the 'Save' icon. Dragging the filetype icon
will result in the image being saved to the directory that the icon was
dragged to, using the leafname specified under 'Filename'. Clicking on the
'Save' icon will result in the image being saved to the pathname specified
under 'Filename'. This is the original pathname by default.
Clicking 'Cancel' will cancel the save.
=============
= Transform =
=============
This leads to a submenu containing 'transformation' functions (i.e. functions
that move pixels around, leaving their colours unchanged).
=======================
= Transform -> Mirror =
=======================
This leads to a submenu containing 'mirror' functions.
Clicking 'Horizontal' or 'Vertical' will mirror the image in horizontal or
vertical direction respectively.
=======================
= Transform -> Rotate =
=======================
This leads to a submenu containing 'rotate' functions.
Clicking '-90 degrees', '+90 degrees' or '180 degrees' will rotate the image
by the specified angle.
The selection is ignored.
======================
= Transform -> Scale =
======================
Clicking on this menu entry will scale the image.
The selection is ignored.
The scaling ratio can be set seperately for X (horizontal) and Y (vertical)
directions. The 'arrow' icon can be clicked to toggle between 'connected'
mode (normal arrow) and 'unconnected' mode (red cross through arrow). In
'connected' mode, the X and Y ratios will change together. In 'unconnected'
mode, they change seperately.
Translator employs accurate 'interpolating' and 'averaging' scaling
algorithms, giving a very good quality result.
=====================
= Transform -> Crop =
=====================
Clicking on this menu entry will crop the image, leaving only the pixels
belonging to the selection.
===========
= Process =
===========
This leads to a submenu containing 'processing' functions (i.e. functions
that recalculate pixels' colours, leaving their position unchanged).
=====================
= Process -> Filter =
=====================
This leads to a submenu containing 'filter' functions. A filter function
looks at every pixel in turn, and recalculates its colour, considering the
old colour of the pixel and the colours of each of its eight neighbor pixels
(i.e. the pixels at the 'north-west', 'north', 'north-east', 'west', 'east',
'south-west', 'south' and 'south-east' side of the pixel in question). An
alternative way of looking at this is by imagining a 3x3 pixel window moving
over the image, in which the middle pixel is replaced by the result colour of
a calculation involving the colours of all the nine pixels in the window.
Note that some neighbor pixels of pixels which lie at the extreme borders of
the image are not available. In these cases, the missing neighbor pixel is
assumed to have the colour of the nearest image pixel.
The red, green and blue colour components of the pixels are filtered
independently.
Most filters take the pixels in the 3x3 pixel window and multiply their
colour component values by a factor which is different depending on the
position of the pixel in the 3x3 pixel window. The resulting values are
accumulated. The accumulated value is subsequently divided by the total
multiplication factor, yielding the new colour component value. Such a 3x3
set of multipliers is called a 'kernel'. One of the filter functions allows
you to specify your own kernel.
=============================
= Process -> Filter -> Blur =
=============================
These filters all have a 'blurring' effect.
Kernels of blurring filters generally consist entirely of positive factors.
This has an 'averaging' effect (the new pixel is the 'weighted average' of
the pixel itself and its neighbor pixels).
You might like to try making your own blurring filters with the custom filter
(described elsewhere). A few tips :
- The lower the 'middle' factor, the stronger the blurring effect is.
- Keep the eight neighbor factors the same for a uniform effect.
- For a 'direction sensitive' blurring effect, use consistently higher
factors on one 'side' of the kernel compared to the opposite 'side'.
========================================
= Process -> Filter -> Blur -> Average =
========================================
This uses a kernel of :
1 1 1
1 1 1
1 1 1
======================================
= Process -> Filter -> Blur -> Gauss =
======================================
This uses a kernel of :
1 2 1
2 4 2
1 2 1
================================
= Process -> Filter -> Sharpen =
================================
These filters all have a 'sharpening' effect.
Kernels of sharpening filters generally consist entirely of negative factors,
except for the middle factor, which is positive. The factors must add up to a
total of 1 or higher.
You might like to try making your own sharpening filters with the custom
filter (described elsewhere). A few tips :
- The lower the 'middle' factor, the stronger the sharpening effect is.
- Keep the eight neighbor factors the same for a uniform effect.
- For a 'direction sensitive' sharpening effect, use consistently higher
factors on one 'side' of the kernel compared to the opposite 'side'.
================================================
= Process -> Filter -> Sharpen -> Sharpen weak =
================================================
This uses a kernel of :
-1 -1 -1
-1 24 -1
-1 -1 -1
==================================================
= Process -> Filter -> Sharpen -> Sharpen strong =
==================================================
This uses a kernel of :
-1 -1 -1
-1 16 -1
-1 -1 -1
===========================================
= Process -> Filter -> Sharpen -> Laplace =
===========================================
This uses a kernel of :
0 -1 0
-1 5 -1
0 -1 0
=======================================
= Process -> Filter -> Sharpen -> Lee =
=======================================
This does not use a kernel but a formula which reads like :
'The new value is the maximum of the window or the minimum of the window,
whichever is closest to the middle'.
==============================
= Process -> Filter -> Noise =
==============================
These filters all have a 'noise removal' effect. They don't use kernels.
============================================
= Process -> Filter -> Noise -> Noise weak =
============================================
This does not use a kernel but a formula which reads like :
'If and only if west is equal to east, then the new value is west'.
==============================================
= Process -> Filter -> Noise -> Noise strong =
==============================================
This does not use a kernel but a formula which reads like :
'If and only if the maximum of north, west, middle, east and south is equal
to the middle (and only the middle), or the minimum of north, west, middle,
east and south is equal to the middle (and only the middle), then the new
value is the average of north, west, east and south'.
==============================
= Process -> Filter -> Other =
==============================
These filters are useful for 'effects'.
=========================================
= Process -> Filter -> Other -> Maximum =
=========================================
This does not use a kernel but a formula which reads like :
'The new value is the maximum of the window'.
=========================================
= Process -> Filter -> Other -> Minimum =
=========================================
This does not use a kernel but a formula which reads like :
'The new value is the minimum of the window'.
==========================================
= Process -> Filter -> Other -> Sobel X+ =
==========================================
This uses a kernel of :
-1 0 1
-2 0 2
-1 0 1
For the technically minded : note that 127 is added to the accumulated value
(before division) because the total multiplication factor is 0.
==========================================
= Process -> Filter -> Other -> Sobel X- =
==========================================
This uses a kernel of :
1 0 -1
2 0 -2
1 0 -1
Comments as for 'Sobel X+'.
==========================================
= Process -> Filter -> Other -> Sobel Y+ =
==========================================
This uses a kernel of :
-1 -2 -1
0 0 0
1 2 1
Comments as for 'Sobel X+'.
==========================================
= Process -> Filter -> Other -> Sobel Y- =
==========================================
This uses a kernel of :
1 2 1
0 0 0
-1 -2 -1
Comments as for 'Sobel X+'.
========================================
= Process -> Filter -> Other -> Custom =
========================================
Clicking on this menu entry will apply the custom filter.
In the window that this menu entry leads to, you can enter your own kernel.
Note that the total of the kernel factors should be 0 or higher. The +127
correction factor for a total kernel factor of 0 is applied automatically.
===================
= Process -> Mask =
===================
Clicking on this menu entry will perform a bit masking operation.
In the window that this menu entry leads to, you can specify a bit mask to be
applied to the red, green and blue colour components of the pixels. If a mask
bit is 0, the corresponding bit of the (8-bit) colour component is forced to
0, else (i.e. if the mask bit is 1) the corresponding bit is not changed.
The bit mask can be set seperately for the red, green and blue colour
component. The 'arrow' icon can be clicked to toggle between 'connected' mode
(normal arrow) and 'unconnected' mode (two red crosses through arrow). In
'connected' mode, the red, green and blue masks will change together. In
'unconnected' mode, they change seperately.
The bit masking function may be useful when an image has 'noise' in its
lowest colour component bits (e.g. when the image originates from a scanner
or digitizer with less than 8 bits accuracy per colour component).
============================
= Process -> Correct black =
============================
Clicking on this menu entry will perform a black correction on the image,
i.e. the black level of the image is shifted 'up' or 'down'.
You can enter the correction factor (which may be between -255 and +255) in
the writable icon.
The black correction function may be useful when what should be black in the
image is actually a shade of grey.
============================
= Process -> Correct gamma =
============================
Clicking on this menu entry will perform a gamma correction on the image.
Gamma correction is needed when the original image was scanned or digitized
using a linear scale of intensity values. This has to be corrected for
display on monitors, as monitor tubes do not respond linearly to linear
increases in pixel intensity values. Gamma correction applies the 'inverse'
response function of the monitor tube, so the scanned or digitized image
looks more like the original.
Note that, usually, the only images that may need gamma correction are the
ones that you have scanned or digitized yourself. Even then, it is likely
that your scanning or digitizing software has already applied gamma
correction. It is inadvisable to apply gamma correction to an already
gamma-corrected image. Therefore, most users will not need to use this
function.
You can enter the correction factor (something between 1.5 and 2.5 is usually
a good choice) in the writable icon.
========================
= Process -> Make grey =
========================
Clicking on this menu entry will turn the image colours into greys.
===========================
= Process -> Expand range =
===========================
Clicking on this menu entry will improve the contrast of the image.
This function determines the range of intensity values used in the image and,
if possible, remaps the intensity values so they cover the full intensity
range available.
=======================
= Process -> Equalize =
=======================
Clicking on this menu entry will perform 'histogram equalization' on the
image.
Histogram equalization measures the accumulated frequencies of all intensity
values used in the image. The intensity values are subsequently remapped in
such a way that the resulting accumulated frequency graph more closely
resembles a straight line. I.e. the intensity values are spread in a more
uniform way.
Note that histogram equalization does not necessarily improve an image's
quality. The effect greatly depends on the image contents.
=====================
= Process -> Invert =
=====================
Clicking on this menu entry will 'invert' all the image colours.
The result is a 'negative' image. Inverting a second time will restore the
original image colours.
=========
= Cache =
=========
This leads to a submenu enabling you to cache or uncache the image data or
the image display.
A 'tick' indicates that the image is currently cached. Clicking on the
'Image' or 'Display' icon will uncache a cached image or vice versa.
Refer to 'Image storage' for more detailed information.
=============
= Selection =
=============
This leads to the 'Selection info' window, which allows you to view the
current selection coordinates.
Clicking on the window will make it permanent. Note that the title of this
window carries the image number which also appears in the title of the
corresponding image window.
========
= Copy =
========
Clicking on this menu entry makes a copy of the image.
//
//
// The 'Options' window
//
//
In this window, you will find seven parts, called 'Load options', 'Save
options', 'Image cache', 'Display cache', 'Miscellaneous', 'Quantization' and
'Dithering'.
The 'Load options' part allows you to specify 'load options' for some image
formats, which influence the way images are loaded. In most cases load
options can be left at their default settings. Refer to 'Supported image
formats (detailed)' for information on specific load options.
The 'Save options' part is similar to the 'Load options' part, except that
these options influence the way that images are saved.
The 'Image cache' and 'Display cache' parts allow you to force Translator
never to cache either the image data or image display respectively. In the
'Auto' setting Translator will decide automatically whether to cache or not.
In the 'Never' setting, Translator will never cache. Refer to 'Image storage'
for more detailed information.
The 'Miscellaneous' part allows you to switch off the warnings about unsaved
modified images, if these annoy you. These warnings are given when Translator
finds you are about to discard an edited image.
The 'Quantization' part allows you to select the accuracy with which colour
frequencies are determined during colour quantization. A higher number of
bits for 'Red', 'Green' or 'Blue' will increase the accuracy with which the
corresponding colour component is handled. Note however that selecting more
than the default of 5 bits per colour component results in only very marginal
and mostly unnoticable differences in image quality. Also note that selecting
less than 5 bits is not really recommended except for the entertainment value
that the resulting images provide. Also note that the memory requirements for
the quantization tables double with every bit added to the total number of
bits. The default setting of 5 bits per colour component (15 bits total)
requires around 128k of memory for the quantization tables.
The 'Dithering' part allows you to select the accuracy of the colour mapping
tables used during colour dithering. Comments similar to the comments under
'Quantization' apply. The default setting of 5 bits per colour component (15
bits total) requires around 128k of memory for the dithering tables.
//
//
// The 'Status' menu
//
//
In this menu you can manipulate Translator's 'status', which consists of a
number of configuration settings.
- 'Save' will save the current status.
- 'Load' will load the saved status.
- 'Default' will load the default status.
- 'Kill' will remove the saved status.
When Translator starts up it loads the saved status, or the default status if
there is no saved status.
The status consists of the 'Image cache', 'Display cache', 'Miscellaneous',
'Quantization' and 'Dithering' settings. These can all be found in the
'Options' window.
//
//
// Supported image formats (overview)
//
//
Translator can read the following image formats (in alphabetical order) :
- AIM
- BMP
- CadSoft
- Clear
- Degas
- GIF
- IFF
- ImageIO
- IMG
- Irlam
- JPEG
- MacPaint
- MTV
- PBMPlus
- PCX
- Pineapple
- PNG
- QRT
- Sprite
- TIFF
Translator can write the following image formats (in alphabetical order) :
- Clear
- GIF
- ImageIO
- JPEG
- PBMPlus
- PNG
- Sprite
- TIFF
The 'ImageIO' format is a special 'internal' format which is not meant to be
used outside Translator.
For more details about the image formats that Translator supports, see
'Supported image formats (detailed)'.
For some image formats that Translator understands, you may specify a few
special settings to be used when loading or saving an image in that format.
Refer to the discussion of the 'Load options' and 'Save options' parts of the
'Options' window.
//
//
// Supported image formats (detailed)
//
//
Following are brief details of all supported image formats.
Image format interpreters are usually very complete, but may, in some cases,
lack support for some subformats. All image interpreters have at least been
tested successfully on all sample images I could find, and have been verified
as well as possible against documentation available to me. Generally, if
Translator encounters formats or subformats that cannot be recognized or are
not supported, it will give up gracefully and provide an indication of why it
has failed.
AIM
===
- Origin
Acorn machines. !AIM (Archimedes Image Manager) program.
- Colours
8 bpp 8:8:8 grey
- Compression
none
- Recognition
filetype &004
- Miscellaneous
Resolution is always 256 x 256 pixels.
BMP
===
- Origin
IBM compatible machines. Microsoft Windows operating system.
- Colours
1 bpp 8:8:8 palette colour
4 bpp 8:8:8 palette colour
8 bpp 8:8:8 palette colour
24 bpp 8:8:8 true colour
- Compression
none
runlength
- Recognition
filetype &69C
'BM' at offset &0
CadSoft
=======
- Origin
Acorn machines. Millipede Prisma display board.
- Colours
8 bpp 8:8:8 palette colour
- Compression
none
runlength
- Recognition
filetype &69A
'MILLIPEDE' at offset &10
Clear
=====
- Origin
Acorn machines. !Translator program and several hardware vendors' programs.
- Colours
1,2,3,4,5,6,7,8 bpp 8:8:8 palette colour
24 bpp 8:8:8 true colour
- Compression
none
- Recognition
filetype &690
Degas
=====
- Origin
Atari machines. Degas and other programs.
- Colours
1,2,4 bpp 3:3:3 palette colour
- Compression
none
runlength
- Recognition
filetype &691
GIF
===
- Origin
Various machines. Graphics Interchange Format, devised by and copyright of
Compuserve Incorporated.
- Colours
1,2,3,4,5,6,7,8 bpp 8:8:8 palette colour
- Compression
12-bit LZW
- Recognition
filetype &695
'GIF87a' or 'GIF89a' at offset &0
- Miscellaneous
When reading, any GIF89a extensions are skipped and ignored. When writing,
GIF87a format is always used.
- Save options
'Interlace' defines whether or not an interlaced image is saved. 'Interlace
= Yes' will save an interlaced image, 'Interlace = No' won't.
IFF
===
- Origin
Various machines. Interchange Format File, devised by Electronic Arts.
- Colours
1,2,3,4,5,6,7,8 bpp 4:4:4 palette colour
1,2,3,4,5,6,7,8 bpp 8:8:8 palette colour
12 bpp 4:4:4 true colour
24 bpp 8:8:8 true colour
- Compression
none
runlength
- Recognition
filetype &693
'FORM' at offset &0 and 'ILBM' at offset &8
IMG
===
- Origin
Atari and IBM compatible machines. Digital Research GEM programs.
- Colours
1 bpp 8:8:8 grey
- Compression
various methods
- Recognition
filetype &692
Irlam
=====
- Origin
Acorn machines. Irlam video digitiser.
- Colours
24 bpp 8:8:8 grey
- Compression
none
- Recognition
filetype &69B
'Irlam' at offset &0
JPEG
====
- Origin
Various machines. Joint Photographic Expert Group, the actual format is
called JFIF (JPEG File Interchange Format), devised by C-Cube Microsystems.
- Colours
8 bpp 8:8:8 grey
24 bpp 8:8:8 true colour
- Compression
Baseline JPEG
- Recognition
filetype &C85
&FF, &D8 at offset &0
- Load options
'Float DCT = No' uses 'fast' integer DCT (Discrete Cosine Transform) code.
'Float DCT = Yes' uses slightly more accurate but 'slow' floating point DCT
code. In practice, both option settings nearly always result in the same
image quality.
- Save options
'Quality = xx', where xx = 0..100, sets the quality level. 100 is best
quality, lowest compression. 0 is worst quality, highest compression.
'Optimize' switches on/off compression optimization (switching it on
results in somewhat smaller files but also uses more processing time).
'Optimize = Yes' switches on compression optimization. 'Optimize = No'
switches it off.
- Miscellaneous
- Processing code is in C. Acknowledgements :
- Compiled with GCC for RISC OS release 1.0.7, (c) 1996 Nick Burrett.
- Linked with UnixLib 3.7b, maintained by Simon Callan.
- Uses IJG JPEG library 6a (07 Feb 1996), (c) 1991-1996 Thomas G. Lane
I am required to state that 'This work is based in part on the work of
the Independent JPEG Group'.
MacPaint
========
- Origin
Apple MacIntosh machines. MacPaint program.
- Colours
1 bpp 8:8:8 grey
- Compression
runlength
- Recognition
filetype &694
'PNTG' at offset &41
- Miscellaneous
Resolution is always 576 x 720 pixels.
MTV
===
- Origin
Various machines. MTV ray tracer.
- Colours
24 bpp 8:8:8 true colour
- Compression
none
- Recognition
filetype &699
PBMPlus
=======
- Origin
Unix machines. Portable Bit Map set of conversion programs, devised by Jef
Poskanzer.
- Colours
1,2,3,4,5,6,7,8 bpp 8:8:8 grey
24 bpp 8:8:8 true colour
- Compression
none
- Recognition
filetype &69E
'Px' at offset &0, where x = 1,2,3,4,5,6
- Miscellaneous
Cannot save 2..7 bpp 8:8:8 grey.
PCX
===
- Origin
IBM compatible machines. ZSoft PC Paintbrush program.
- Colours
1,2,4,8 bpp 8:8:8 palette colour
- Compression
none
runlength
- Recognition
filetype &697
Pineapple
=========
- Origin
Acorn machines. Pineapple Software video digitiser.
- Colours
16 bpp 5:6:5 true colour
- Compression
none
- Recognition
filetype &696
'FSIfile' at offset &0
- Miscellaneous
Resolution is always 512 x 256 pixels.
PNG
===
- Origin
Various machines. Portable Network Graphics format, initially designed to
impove on and fully replace GIF, since GIF's compression algorithm poses
patent problems since 1995. Forget GIF, use PNG (compresses better too !).
- Colours
1,2,4,8 bpp 8:8:8 palette colour
1,2,4 bpp 8:8:8 grey
8 bpp 8:8:8 grey with optional alpha channel
16 bpp 16:16:16 grey with optional alpha channel
24 bpp 8:8:8 true colour with optional alpha channel
48 bpp 16:16:16 true colour with optional alpha channel
- Compression
Deflate
- Recognition
filetype &B60
137, 80, 78, 71, 13, 10, 26, 10 at offset &0
- Miscellaneous
Reader supports all formats, but :
- 16 bpp 16:16:16 grey is 'stripped' to 8 bpp 8:8:8 grey.
- 48 bpp 16:16:16 true colour is 'stripped' to 24 bpp 8:8:8 true colour.
- Alpha channels and transparency cause pixel colours to be recalculated
against a background colour (black if not specified in PNG file).
- Processing code is in C. Acknowledgements :
- Compiled with GCC for RISC OS release 1.0.7, (c) 1996 Nick Burrett.
- Linked with UnixLib 3.7b, maintained by Simon Callan.
- Uses libpng 1.0 beta 3 0.89, (c) 1995-1996 Guy Eric Schalnat.
- Uses zlib 1.0.4, (c) 1995-1996 Jean-loup Gailly and Mark Adler.
QRT
===
- Origin
Various machines. QRT ray tracer.
- Colours
24 bpp 8:8:8 true colour
- Compression
none
- Recognition
filetype &698
Sprite
======
- Origin
Acorn machines. Acorn defined native image format.
- Colours
1,2,4,8 bpp 4:4:4 palette colour
1,2,4,8 bpp 8:8:8 palette colour
15 bpp 5:5:5 true colour
24 bpp 8:8:8 true colour
- Compression
none
- Recognition
filetype &FF9
- Load options
'Default palette' defines the palette to use when palette colour sprites
without a palette are loaded. If the mapping of the bpp of the input to the
corresponding mode is thought of as 1,2,4,8 bpp --> mode 18,19,20,21, then
'Default palette = WIMP' will use the default WIMP palette for the
appropriate mode, and 'Default palette = Mode' will use the default mode
palette (as after a MODE command outside the desktop).
- Save options
'Sprite type' defines the sprite type to save. It only affects the mode
number saved in the sprite file. 'Sprite type = Default' will save old type
sprites for 4:4:4 palette colour input, else new type sprites. 'Sprite type
= Force old' will always save old type sprites. 'Sprite type = Force new'
will always save new type sprites.
- Miscellaneous
Sprite masks are always ignored. Old type 8 bpp 4:4:4 sprites always have
the standard fixed 256-colour palette and are actually saved without
palette.
TIFF
====
- Origin
Various machines. Tag Image File Format (that's 'Tag', not 'Tagged' as most
people think !), devised by Aldus Corporation and Microsoft Corporation.
- Colours
1,2,4,8 bpp 8:8:8 palette colour
24 bpp 8:8:8 true colour
- Compression
none
packbits
12-bit LZW
- Recognition
filetype &FF0
'II' or 'MM' at offset &0
//
//
// Registering
//
//
Please register this program if it serves you well. I am sacrificing a lot of
my time to help increase the amount of good software available for your Acorn
machine. Registration is cheap and easy.
To register, send 30 Dutch Guilders to :
John Kortink
Nutterbrink 31
7544 WJ Enschede
The Netherlands
As soon as your registration has been received you will be a registered user
of Translator. A floppy disc with the latest version of Translator will be
sent to you free of charge, unless you are easily able to access my www page
on the Internet, in which case you already have immediate access to the very
latest versions. Registration also entitles you to free use of any future
versions of Translator.
NOTE : if you register for any one of my applications Translator, Creator or
GreyEdit, you are automatically registered for all of them.
I can accept any of the following types of payment (in order of preference) :
- Cash. You may send any regular European currency, as long as it is
equivalent to 30 Dutch Guilders and consists of 'large', recent bank notes
only.
- Eurocheque. Please note down your pass number on the back of the cheque or
I will be unable to cash the cheque at the bank.
Please note that I cannot accept any other type of payment, including cheques
that are not Eurocheques. I cannot cash these cheques without paying high
bank charges.
Updates of Translator will be made available by (in order of preference) :
- World Wide Web, on www.inter.nl.net/users/J.Kortink.
- Electronic mail, to kortink@inter.nl.net.
- Snail mail, to : see registration address. Include a DD or HD floppy,
return envelope and one International Reply Coupon (IRC).